/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Logica;

import Presentacion.InterfaceRemota;

/**
 * Es la clase que se encarga de instanciar los objetos remotos a traves de la
 * conexion RMI
 *
 * @author Administrador
 */
public class RmiServer {

    private InterfaceRemota rmiServer;

    /**
     * Constructor por defecto de la clase
     */
    private RmiServer() {
    }

    /**
     * Devuelve la unica instancia del servidor
     *
     * @return Instance de tipo RmiServer. Es la instancia del objeto remoto al
     * servidor
     */
    public static RmiServer getInstance() {
        return rmiServerHolder.INSTANCE;
    }

    /**
     * retorna la interface remota del servidor.
     *
     * @return rmiServer de tipo {
     * @InterfaceRemota}.
     */
    public InterfaceRemota getRmiServer() {
        return rmiServer;
    }

    /**
     * Asinga una interface remota al objeto RmiServer
     *
     * @param rmiServer de tipo InterfaceRemota
     */
    public void setRmiServer(InterfaceRemota rmiServer) {
        this.rmiServer = rmiServer;
    }

    private static class rmiServerHolder {

        private static final RmiServer INSTANCE = new RmiServer();
    }
}
